package ioperations;

import book.Book;
import book.BookList;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 姚东名
 * Date: 2024-06-22
 * Time: 9:58
 */
public class ReturnOperation implements IOperation {
    @Override
    public void work(BookList bookList) {
        System.out.println("归还书籍：");
        Scanner scanner = new Scanner(System.in);
        System.out.printf("请输入你归还的书名：");
        String name = scanner.nextLine();

        int currentSize = bookList.getUsedSize();

        for (int i = 0; i < currentSize; i++) {
            Book book = bookList.getBook(i);

            if (book.getName().equals(name)) {
                if (book.isBorrowed()) {
                    book.setBorrowed(false);
                    System.out.println("归还成功！");
                    return;
                }
            }
        }
        System.out.println("没有你要归还的图书！！！");
    }
}
/*
这个`ReturnOperation`类实现了`IOperation`接口，并提供了`work`方法用于处理书籍归还的逻辑。以下是该方法逻辑关系的简短分析：

1. **提示用户并接收输入**：
   - 输出提示信息，告知用户正在进行书籍归还操作。
   - 使用`Scanner`类接收用户输入的要归还的书名。

2. **遍历书架上的书籍**：
   - 获取书架当前的使用大小（`currentSize`）。
   - 遍历书架上的每一本书，检查书名是否与用户输入的书名匹配。

3. **检查书籍状态并执行归还**：
   - 如果找到匹配的书名，首先检查该书是否处于被借出状态。
   - 如果书已经被借出，则将其借阅状态设置为未借出，输出归还成功的提示信息，并结束方法。

4. **处理未找到书籍或书籍未被借出的情况**：
   - 如果遍历完书架上的所有书籍都没有找到匹配的书名，或者书籍本身就未被借出，则输出提示信息表示没有用户要归还的图书。

简而言之，这个类的`work`方法实现了书籍归还的功能，通过用户输入的书名来查找并尝试归还书籍，同时确保了只有被借出的书籍才能被归还，并在未找到书籍或书籍未被借出时给出相应的提示。
 */